<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
</head>
<body>
    <script>
        // __proto__（[[Prototype]]）:隐式原型 对象里都是 隐式原型
        // __proto__在实例化之前是 prototype  
        function Person(name){
            this.name = name;
        }

        //一般不会这样写 
       Person.prototype.age = 20;
       let obj = new Person("张三");
    //    console.log(obj);
        console.log(obj.__proto__===Person.prototype)  //证明 obj.__proto__和Person.prototypej就是一个对象
       //    修改添加原型里的内容应该怎么改？？
      //    这样写是可以的 ，但是注意不符合规范 
      // __proto__:私有属性 ，不希望外部来更改
        // obj.__proto__.fn = function(){
        //     console.log("fn");
        // }
        // obj.fn();

        // 推荐 :通过函数 Object.setPrototypeOf 设置对象的原型
        // Object.setPrototypeOf(obj,{fn:function(){
        //     console.log("fn");
        // }})
        // // console.log(obj);
        // obj.fn();
        // 获取对象的原型 Object.getPrototypeOf 来获取对象的原型
        // console.log(obj.__proto__);
        //   let res =   Object.getPrototypeOf(obj);
        //   console.log(res);






    </script>
</body>
</html>